package com.whfc.safety.dao;

import com.whfc.safety.dto.SafetyDangerDTO;
import com.whfc.safety.entity.SafetyDanger;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

public interface SafetyDangerMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(SafetyDanger record);

    int insertSelective(SafetyDanger record);

    SafetyDanger selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(SafetyDanger record);

    int updateByPrimaryKey(SafetyDanger record);

    /**
     * 查询危大工程台账列表
     *
     * @param deptId
     * @param state
     * @return
     */
    List<SafetyDangerDTO> selectByDeptId(@Param("deptId") Integer deptId, @Param("state") Integer state);

    /**
     * 软删除
     *
     * @param dangerId
     */
    void del(Integer dangerId);

    /**
     * 查询在施危大工程数量
     *
     * @param deptId
     * @param startTime
     * @param endTime
     * @return
     */
    Integer selectProceedDangerNumByDeptId(@Param("deptId") Integer deptId, @Param("startTime") Date startTime, @Param("endTime") Date endTime);

    /**
     * 查询下月下月计划施工工程数量
     *
     * @param deptId
     * @return
     */
    Integer selectProxDangerNumByDeptId(@Param("deptId") Integer deptId, @Param("startTime") Date startTime, @Param("endTime") Date endTime);

    /**
     * 查询超时危大信息
     *
     * @return
     */
    List<Integer> selectDangerIdAll();

    /**
     * 更新危大超时状态
     *
     * @param dangerIds
     */
    void updateOverdue(@Param("dangerIds") List<Integer> dangerIds);
}